package com.fanco.learn_datastruct_leetcode.leetcode;

/**
 * @author qiaowang 2021/5/12
 * 给你 n 个非负整数 a1，a2，...，an，每个数代表坐标中的一个点(i,ai) 。
 * 在坐标内画 n 条垂直线，垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线，
 * 使得它们与轴共同构成的容器可以容纳最多的水。
 *
 *
 */
public class Day08 {
    public static void main(String[] args) {
        Solution solution = new Solution();
        int[] height = {1,1};
        System.out.println(solution.maxArea(height));

    }

    private static class Solution {
        /**
         * 双指针法 解决
         * @param height
         * @return
         */
        public int maxArea(int [] height) {
            // 定义左指针
            int l = 0;
            // 定义右指针
            int r = height.length - 1;
            // 保存最大面积
            int ans = 0;

            while (l < r) {
                ans = height[l] < height[r] ?
                        Math.max(ans, (r - l) * height[l++]) :
                        Math.max(ans, (r - l) * height[r--]);
            }
            return ans;
        }
    }
}
